﻿using System;
using SharpSqlAnalyzer.nodes;

namespace SharpSqlAnalyzer.stmt
{
	// Token: 0x020000AC RID: 172
	public class TExecutePreparedStatement : TCustomSqlStatement
	{
		// Token: 0x06000567 RID: 1383 RVA: 0x002FCFC2 File Offset: 0x002FB1C2
		public TExecutePreparedStatement(EDbVendor dbvendor) : base(dbvendor)
		{
			this.sqlstatementtype = ESqlStatementType.sstExecutePreparedStmt;
		}

		// Token: 0x06000568 RID: 1384 RVA: 0x002FCFD4 File Offset: 0x002FB1D4
		public override int doParseStatement(TCustomSqlStatement psql)
		{
			if (this.rootNode == null)
			{
				return -1;
			}
			base.doParseStatement(psql);
			TExecuteSqlNode texecuteSqlNode = (TExecuteSqlNode)this.rootNode;
			this.statementName = texecuteSqlNode.ModuleName;
			this.parameters = texecuteSqlNode.StringValues;
			return 0;
		}

		// Token: 0x170000D9 RID: 217
		// (get) Token: 0x06000569 RID: 1385 RVA: 0x002FD018 File Offset: 0x002FB218
		// (set) Token: 0x0600056A RID: 1386 RVA: 0x002FD020 File Offset: 0x002FB220
		public virtual TObjectName StatementName
		{
			get
			{
				return this.statementName;
			}
			set
			{
				this.statementName = value;
			}
		}

		// Token: 0x170000DA RID: 218
		// (get) Token: 0x0600056B RID: 1387 RVA: 0x002FD029 File Offset: 0x002FB229
		// (set) Token: 0x0600056C RID: 1388 RVA: 0x002FD031 File Offset: 0x002FB231
		public virtual TExpressionList Parameters
		{
			get
			{
				return this.parameters;
			}
			set
			{
				this.parameters = value;
			}
		}

		// Token: 0x0600056D RID: 1389 RVA: 0x002FD03A File Offset: 0x002FB23A
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x0600056E RID: 1390 RVA: 0x002FD04A File Offset: 0x002FB24A
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x04001145 RID: 4421
		private TObjectName statementName;

		// Token: 0x04001146 RID: 4422
		private TExpressionList parameters;
	}
}
